Decomposing Verification by Features
نویسندگان
چکیده
Practical program verification techniques must align with the software development methodologies that produce the programs. Researchers from several corners of software engineering have proposed similar models of program development in which modules encapsulate units of end-user functionality known as features. These models ameliorate some difficulties with conventional modular verification, such as property decomposition, while creating others, by contradicting assumptions that underlie most modern program verification techniques. This paper motivates the decomposition of systems by features and provides an overview of the challenges this poses to verification. A Notion of Software Development For program verification to thrive, verification methodologies must align with software development methodologies. This means that verification tools should be able to handle program fragments of the style and granularity that programmers produce. In addition, the effort to verify a program increment should bear some reasonable ratio to the effort to develop that increment. An important trend in software development poses particular challenges to conventional methods of program verification. Our understanding of this trend is inspired by the picture in Figure 1 which Michael Jackson used in his presentation at ESEC/FSE 2001 (following his acceptance of the SIGSOFT Outstanding Research Award). The box at the lower-left might be grossly characterized as the province of programming languages, proceeding from specifications to programs that, we hope, properly implement those specifications. This is the realm of solutions, (in Jackson’s words, the solution space). The box at the upper-right is the domain of requirements engineering: the collection of processes, many sociological (and imprecise!), that glean requirements for a system from its users and other stakeholders or, more broadly, from the fuzzy blob that is the “real world”. In Jackson’s terminology, the transactions in this world must remain in the problem space. ? This work is partially funded by NSF grants CCR-0305834, CCR-0132659, CCR0447509 and CCR-0305950. 3 We have transcribed this picture from our notes; a related version is in a paper [1].
منابع مشابه
Runtime Verification for Decentralised and Distributed Systems
This chapter surveys runtime verification research related to distributed systems. We report solutions that study how to monitor system with some distributed characteristic, solutions that use a distributed platform for performing a monitoring task, and foundational works that present semantics for decomposing monitors or expressing specifications amenable for distributed systems. We will ident...
متن کاملDecomposing the Value of Word-of-Mouth Seeding Programs: Acceleration Versus Expansion
Web Appendix A: On agent-based modeling, verification, and validation Agent-Based Models (ABMs) are especially suitable for cases in which a larger number of agents interact in a way that while simple to model on the individual level, are too complex to track using simple aggregate approaches (See Rust and Rand 2011 for a recent comprehensive review). Hence they fit well contagion processes amo...
متن کاملAn Aspect-Oriented Language Based on Product Family Algebra: Aspects Specification and Verification∗
Aspect-orientation is a promising paradigm for managing the separation of crosscutting concerns and decomposing a system using more than one criterion. This paper proposes an aspect-oriented approach at the feature-modeling level to better handle crosscutting concerns in product families. The implementation of some features of a product family can be inherently scattered over several features o...
متن کاملDecomposing Verification Around End-User Features
Practical program verification techniques must align with the software development methodologies that produce the programs. Numerous researchers have independently proposed models of program development in which modules encapsulate units of end-user functionality known as features. Such encapsulation reflects user concerns into a program’s modular structure, which in turn promises to simplify p...
متن کاملDecomposing Verification of Timed I/O Automata
This paper presents assume-guarantee style substitutivity results for the recently published timed I/O automaton modeling framework. These results are useful for decomposing verification of systems where the implementation and the specification are represented as timed I/O automata. We first present a theorem that is applicable in verification tasks in which system specifications express safety...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2005